tensor-product[str] input-seq
implements a tensor product (see Wikipedia) of the superpositions in the input sequence
and returns a superposition of the resulting kets
in the simplest case, if given a sequence of two kets, c1|s1> . c2|s2>, the result is c1*c2|s1 . s2>
where in this case we used " . " for the separator string
in the general case, we return a sum of the tensor product of all the input kets
if the input sequence contains the empty ket, then ignore that ket
tensor-product should speed up a couple of algos